﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;

namespace KinectGame
{
    public struct LightOutput
    {
        public Vector3  dir;                     // world space direction
        public Vector3  pos;                     // world space position
        public Vector4  ambient;
        public Vector4  diffuse;
        public Vector4  specular;
        public float    spotInnerCone;            // spot light inner cone (theta) angle
        public float    spotOuterCone;            // spot light outer cone (phi) angle
        public float    radius;                   // applies to point and spot lights only
    };

    public enum LightType
    {
        DIRECTIONAL, POINT, SPOT
    }

    public class Light
    {
        private LightOutput output;

        public LightOutput Output
        {
            get { return output; }
        }
        private LightType type;

        public LightType Type
        {
            get { return type; }
        }

        public Light(Vector3 pos, Vector4 ambient, Vector4 diffuse, Vector4 specular)
        {
            type = LightType.POINT;
            output = new LightOutput();
            output.pos = pos;
            output.ambient = ambient;
            output.diffuse = diffuse;
            output.specular = specular;
        }
    }
}
